#include <iostream>
#include<string>
#include<vector>
using namespace std;
//class Solution {
//public:
//    void SwapString(string&s,int & begin,int& end)
//    {
//        while(begin<end)//交换
//        {
//            swap(s[begin++],s[end--]);
//        }
//    }
//    string reverseStr(string s, int k)
//    {
//        //1:二倍k是否比s的个数多，不多就就交换前k个字符
//        //2:如果剩下的数据少于k就全部反转
//        int tail=k;
//        int begin=0,end=k-1;//初交换的值
//        if(k*2<=s.size()&&k!=1)//大于说明初始个数就比s大
//        {
//            tail*=2;
//            while(tail<=s.size())
//            {
//                SwapString(s,begin,end);
//                begin=tail-1;
//                tail+=2*k;
//                end=tail-k-1;
//            }
//            //置换完剩余的字符交换
//            int number=tail-(2*k);
//            if(s.size()-number>k)
//            {
//                begin=number,end=begin+k-1;
//                SwapString(s,begin,end);
//            }
//        }
//        else
//        {
//            //没有置换需要交换的情况
//            if(k<=s.size())
//            {
//                SwapString(s,begin,end);
//            }
//        }
//        return s;
//    }
//};


//class Solution {
//public:
//    void SwapString(string&s,int  begin,int end)
//    {
//        for(int i=begin;i<end;i++)
//        {
//            cout<<s[i];
//        }
//        cout<<endl;
//        while(begin<end)//交换
//        {
//            swap(s[begin++],s[end--]);
//        }
//    }
//    string reverseStr(string s, int k)
//    {
//        //1:二倍k是否比s的个数多，不多就就交换前k个字符
//        //2:如果剩下的数据少于k就全部反转
//
//        int tail=k;
//        int begin=0,end=k-1;//初交换的值
//        if(k*2<=s.size()&&k!=1)//大于说明初始个数就比s大
//        {
//            tail*=2;
//            while(tail<=s.size())
//            {
//                SwapString(s,begin,end);
//                begin=tail-1;
//                tail+=2*k;
//                end=tail-k-1;
//            }
//            //置换完剩余的字符交换
//            int number=tail-(2*k);
//            if(s.size()-number>k)
//            {
//                begin=number,end=begin+k-1;
//                SwapString(s,begin,end);
//            }
//        }
//        else
//        {
//            //没有置换需要交换的情况
//            if(k<s.size())
//            {
//                SwapString(s,begin,end);
//            }
//            else
//            {
//                SwapString(s,0,s.size()-1);
//            }
//        }
//        return s;
//    }
//};
//class Solution {
//public:
//
//    string reverseStr(string s, int k)
//    {
//        auto itB=s.begin();
//        for(int i =k*2;i<s.size();i+=k*2)
//        {
//            reverse(itB,itB+k);
//            itB+=k*2;
//        }
//        if(k>s.size())
//        {
//            reverse(itB,s.end());
//        }
//        else
//        {
//            reverse(itB,itB+k);
//        }
//
//
//
//    return s;
//    }
//};
//int main()
//{
//    Solution d1;
//    d1.reverseStr(string("abcd"),4);
//    return 0 ;
//}


//class Solution {
//public:
//    bool findNumberIn2DArray(vector<vector<int>>& matrix, int target)
//    {
//        int row;
//        if(!matrix.empty())
//        row=matrix[0].size()-1;//最后一个元素得下标
//        for(int i =0;i<matrix.size();i++)
//        {
//            for(int j=row;j>=0;j--)
//            {
//                if(matrix[i][j]>target)
//                {
//                    row--;
//                }
//                else if(matrix[i][j]<target)
//                {
//                   break;
//                }
//                else
//                {
//                    return true;
//                }
//            }
//        }
//        return false;
//    }
//};

#include<iostream>
#include<stack>
#include<string.h>
//using namespace std;
// void instead(char * ch )//在数组中插入字符%20
// {
//     //1.判断空格的个数
//     int count =0;
//      for(int i=0;i<strlen(ch);i++)
//      {
//          if(ch[i]==' ')
//          {
//              count++;
//          }
//      }
//      count=count*3-count;//移动数据的长度
//     char *end = ch + strlen(ch);//end index
//
//     while(end>ch)
//     {
//         if(*end==' ')//是空格的情况
//         {
//             count-=2;//控制剩余的个数每次交换就会少俩个，且strncpy是直接在原地开始往后放数据
//             strncpy(end+count,"%20",3);
//         }
//         else//不是空格的情况
//         {
//             *(end+count)=*end;
//         }
//         end--;
//     }
//
// }
// int main()
// {
//   char arr[100]="We are very";
//     cout<<arr<<endl;
//    instead(arr);
//     cout<<arr;
// }

class CQueue
{
    //俩个stack来回导，这样就是一个队列，
    //非空队列出数据，空队列入数据
public:
    CQueue()
    {

    }

    stack<int> Sempty;
    stack<int> noempty;
    void appendTail(int value)
    {
        Sempty.push(value);
    }

    int deleteHead()
    {
        if(noempty.empty()&&!Sempty.empty())
        {
            while(!Sempty.empty())
            {
                noempty.push(Sempty.top());
                Sempty.pop();
            }

        }


        if(noempty.empty()&&Sempty.empty())//俩个栈都是空的时候
        {
            return -1;
        }
        int ret=noempty.top();

        
        return ret;
    }
};
int main()
{
    CQueue d1;
    d1.deleteHead();
}

